home *** CD-ROM | disk | FTP | other *** search
-
- --NOTE: crabs must be together in models.lua
- local crabs = {}
- for i = 0, 6 do
- crabs[i] = getModelsTable()[krabi.index + i]
- end
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky03.ogg")
- local pokus = getRestartCount()
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.qnevsimla = 0
- room.qautomat = 0
- room.qnezkusime = 0
- room.qhlava = 0
- room.komentovaly = 0
-
- return function()
- if isReady(small) and isReady(big) and no_dialog() and vladce.cinnost == 0 and not vladce:isTalking() then
- if room.komentovaly < vladce.promluvila then
- room.komentovaly = vladce.promluvila
- if room.komentovaly > 1 and random(100) < 50 then
- switch(random(4)){
- [0] = function()
- room.qnevsimla = math.mod(room.qnevsimla + 1, 4)
- if room.qnevsimla == 1 then
- addv(8, "vit-v-nevsimla")
- end
- end,
- [1] = function()
- room.qautomat = math.mod(room.qautomat + 1, 6)
- if room.qautomat == 1 then
- addv(8, "vit-v-automat")
- addm(9, "vit-m-nebo")
- end
- end,
- [2] = function()
- room.qnezkusime = math.mod(room.qnezkusime + 1, 8)
- if room.qnezkusime == 2 then
- addm(8, "vit-m-nezkusime")
- if room.komentovaly < 15 then
- addv(5, "vit-v-proc")
- end
- end
- end,
- [3] = function()
- room.qhlava = math.mod(room.qhlava + 1, 2)
- if room.qautomat == 0 then
- switch(random(2)){
- [0] = function()
- addm(8, "vit-m-hlava")
- end,
- [1] = function()
- addv(8, "vit-v-hlava")
- end,
- }
- end
- end,
- }
- end
- end
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_vladce()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- vladce.promluvila = 0
- vladce.delay = random(80) + 80
- vladce.ksichty = 0
- vladce.vital = 0
- vladce.obecne = {}
- vladce.specialni = {}
- vladce.prodleva = 100
- vladce.cinnost = 0
-
- return function()
- vladce.afaze = vladce.afaze + 1
- if countPairs(vladce.obecne) == 4 and countPairs(vladce.specialni) == 4 then
- vladce.prodleva = 2 * vladce.prodleva
- vladce.obecne = {}
- vladce.specialni = {}
- end
- if vladce.delay < 0 then
- vladce.delay = random(vladce.prodleva) + vladce.prodleva
- end
- if vladce.ksichty == 0 and vladce.cinnost == 0 then
- if vladce.delay > 0 then
- vladce.delay = vladce.delay - 1
- elseif no_dialog() then
- if vladce.vital == 0 then
- vladce.cinnost = 1
- vladce.vital = 1
- elseif countPairs(vladce.obecne) == 0 or random(100) < 60 then
- pom1 = random(5)
- if vladce.obecne[pom1] == nil then
- vladce.obecne[pom1] = true
- vladce.cinnost = 2 + pom1
- vladce.promluvila = vladce.promluvila + 1
- end
- else
- pom1 = random(5)
- if vladce.specialni[pom1] == nil then
- vladce.specialni[pom1] = true
- vladce.cinnost = 7 + pom1
- vladce.promluvila = vladce.promluvila + 1
- end
- end
- end
- end
- if vladce.ksichty == 0 then
- switch(vladce.cinnost){
- [0] = function()
- if random(50) == 0 then
- vladce.faze = 0
- switch(vladce.afaze){
- [1] = function()
- switch(random(5)){
- [0] = function()
- vladce.ksichty = 20
- end,
- [1] = function()
- vladce.ksichty = 10
- end,
- [2] = function()
- vladce.ksichty = 12
- end,
- [3] = function()
- vladce.afaze = 2
- end,
- [4] = function()
- vladce.ksichty = 21
- end,
- }
- end,
- [10] = function()
- switch(random(2)){
- [0] = function()
- vladce.ksichty = 11
- end,
- [1] = function()
- vladce.ksichty = 14
- end,
- }
- end,
- [11] = function()
- switch(random(2)){
- [0] = function()
- vladce.ksichty = 13
- end,
- [1] = function()
- vladce.ksichty = 22
- end,
- }
- end,
- [14] = function()
- switch(random(3)){
- [0] = function()
- vladce.ksichty = 1
- end,
- [1] = function()
- vladce.ksichty = 1
- end,
- [2] = function()
- vladce.afaze = 1
- vladce.cinnost = 10
- vladce.faze = vladce.faze - 1
- end,
- }
- end,
- [6] = function()
- switch(random(3)){
- [0] = function()
- vladce.ksichty = 12
- end,
- [1] = function()
- vladce.afaze = 1
- end,
- }
- end,
- default = function()
- vladce.afaze = 1
- end,
- }
- end
- end,
- [1] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-vitejte"..string.char(string.byte("A") + random(4)))
- vladce.ksichty = 2
- vladce.cinnost = 0
- end,
- [2] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-demoni0")
- vladce.ksichty = 1
- vladce.cinnost = 0
- end,
- [3] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-dite0")
- vladce.ksichty = 3
- vladce.cinnost = 0
- end,
- [4] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-lod0")
- vladce.ksichty = 1
- vladce.cinnost = 0
- end,
- [5] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-soud0")
- vladce.ksichty = 4
- vladce.cinnost = 0
- end,
- [6] = function()
- vladce:talk("vit-hs-jidelna1")
- vladce.ksichty = 1
- vladce.cinnost = 61
- end,
- [61] = function()
- addm(0, "vit-m-jakze")
- addv(0, "vit-v-vazne")
- addm(0, "vit-m-nechutne")
- planSet(vladce, "cinnost", 63)
- vladce.cinnost = 62
- end,
- [63] = function()
- vladce:talk("vit-hs-jidelna2")
- vladce.ksichty = 4
- vladce.cinnost = 0
- vladce.delay = -1
- end,
- [7] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-kacir")
- vladce.ksichty = 4
- vladce.cinnost = 0
- end,
- [8] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-vodovod0")
- vladce.ksichty = 2
- vladce.cinnost = 0
- end,
- [9] = function()
- krabi:talk("vit-x-beg")
- vladce.ksichty = 10
- vladce.faze = 0
- vladce.cinnost = 91
- end,
- [91] = function()
- if not krabi:isTalking() then
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 3
- vladce:talk("vit-hs-reklama1")
- end
- end,
- [92] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 4
- vladce:talk("vit-hs-reklama2")
- end,
- [93] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 3
- vladce:talk("vit-hs-reklama3")
- end,
- [94] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 4
- vladce:talk("vit-hs-reklama4")
- end,
- [95] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 2
- vladce:talk("vit-hs-reklama5")
- end,
- [96] = function()
- vladce.cinnost = 0
- vladce.delay = -1
- vladce.ksichty = 10
- vladce.faze = 0
- krabi:talk("vit-x-end")
- end,
- [10] = function()
- vladce.cinnost = 101
- vladce.ksichty = 2
- vladce:talk("vit-hs-klid1")
- end,
- [101] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 4
- vladce:talk("vit-hs-klid2")
- end,
- [102] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 12
- vladce.faze = 0
- vladce.delay = 5
- end,
- [103] = function()
- if vladce.delay > 0 then
- vladce.delay = vladce.delay - 1
- else
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 13
- vladce.faze = 0
- end
- end,
- [104] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 3
- vladce:talk("vit-hs-klid3")
- end,
- [105] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 2
- vladce:talk("vit-hs-klid4")
- end,
- [106] = function()
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 12
- vladce.faze = 0
- vladce.delay = 3
- end,
- [109] = function()
- vladce.delay = -1
- vladce.cinnost = 0
- end,
- [11] = function()
- vladce.delay = -1
- vladce:talk("vit-hs-pojis0")
- vladce.ksichty = 2
- vladce.cinnost = 0
- end,
- default = function()
- if isIn(vladce.cinnost, {107, 108}) then
- if vladce.delay > 0 then
- vladce.delay = vladce.delay - 1
- else
- vladce.cinnost = vladce.cinnost + 1
- vladce.ksichty = 22
- vladce.faze = 0
- vladce.delay = 1
- end
- else
- vladce.cinnost = 0
- end
- end,
- }
- end
- local ksichty_table = {
- [0] = function()
- end,
- [1] = function()
- if math.mod(game_getCycles(), 2) == 0 then
- if vladce:isTalking() then
- pom1 = random(3)
- else
- pom1 = 3
- end
- switch(vladce.ksichty){
- [1] = function()
- switch(pom1){
- [0] = function()
- vladce.afaze = 1
- end,
- [1] = function()
- vladce.afaze = 15
- end,
- [2] = function()
- vladce.afaze = 18
- end,
- [3] = function()
- vladce.afaze = 1
- end,
- }
- end,
- [2] = function()
- switch(pom1){
- [0] = function()
- vladce.afaze = 4
- end,
- [1] = function()
- vladce.afaze = 16
- end,
- [2] = function()
- vladce.afaze = 20
- end,
- [3] = function()
- vladce.afaze = 1
- end,
- }
- end,
- [3] = function()
- switch(pom1){
- [0] = function()
- vladce.afaze = 14
- end,
- [1] = function()
- vladce.afaze = 17
- end,
- [2] = function()
- vladce.afaze = 19
- end,
- [3] = function()
- vladce.afaze = 14
- end,
- }
- end,
- [4] = function()
- switch(pom1){
- [0] = function()
- vladce.afaze = 6
- end,
- [1] = function()
- vladce.afaze = 15
- end,
- [2] = function()
- vladce.afaze = 18
- end,
- [3] = function()
- vladce.afaze = 11
- end,
- }
- end,
- }
- if pom1 == 3 then
- vladce.ksichty = 0
- end
- end
- end,
- [10] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [1] = function()
- vladce.afaze = 5
- end,
- [2] = function()
- vladce.afaze = 9
- end,
- [3] = function()
- vladce.afaze = 10
- end,
- [4] = function()
- vladce.ksichty = 0
- end,
- }
- end,
- [11] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [1] = function()
- vladce.afaze = 9
- end,
- [2] = function()
- vladce.afaze = 5
- end,
- [3] = function()
- vladce.afaze = 1
- end,
- [4] = function()
- vladce.ksichty = 0
- end,
- }
- end,
- [12] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [1] = function()
- vladce.afaze = 6
- end,
- [2] = function()
- vladce.afaze = 7
- end,
- [3] = function()
- vladce.afaze = 11
- end,
- [4] = function()
- vladce.ksichty = 0
- end,
- }
- end,
- [13] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [1] = function()
- vladce.afaze = 7
- end,
- [2] = function()
- vladce.afaze = 6
- end,
- [3] = function()
- vladce.afaze = 1
- end,
- [4] = function()
- vladce.ksichty = 0
- end,
- }
- end,
- [14] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [1] = function()
- vladce.afaze = 9
- end,
- [2] = function()
- vladce.afaze = 5
- end,
- [3] = function()
- vladce.afaze = 14
- end,
- [4] = function()
- vladce.ksichty = 0
- end,
- }
- end,
- [20] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [1] = function()
- vladce.afaze = 6
- end,
- [2] = function()
- vladce.afaze = 8
- end,
- [3] = function()
- vladce.afaze = 8
- end,
- [4] = function()
- vladce.afaze = 6
- end,
- [5] = function()
- vladce.ksichty = 0
- end,
- }
- end,
- [21] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [2] = function()
- vladce.afaze = 4
- end,
- [6] = function()
- vladce.ksichty = 0
- end,
- default = function()
- if (isIn(vladce.faze, {1, 3, 5})) then
- vladce.afaze = 1
- end
- end,
- }
- end,
- [22] = function()
- vladce.faze = vladce.faze + 1
- switch(vladce.faze){
- [2] = function()
- vladce.afaze = 12
- end,
- [6] = function()
- vladce.ksichty = 0
- end,
- default = function()
- if (isIn(vladce.faze, {1, 3, 5})) then
- vladce.afaze = 11
- end
- end,
- }
- end,
- }
-
- ksichty_table[2] = ksichty_table[1]
- ksichty_table[3] = ksichty_table[1]
- ksichty_table[4] = ksichty_table[1]
-
- switch(vladce.ksichty)(ksichty_table)
- vladce.afaze = vladce.afaze - 1
- vladce:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_krabi()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.globpole = {}
- for pom1 = 0, 6 do
- room.globpole[pom1] = 0
- crabs[pom1].afaze = 1
- crabs[pom1]:updateAnim()
- end
-
- return function()
- pomb1 = vladce:isTalking() or krabi:isTalking()
- for pom1 = 0, 6 do
- pom2 = dist(vladce, crabs[pom1])
- if isIn(crabs[pom1].dir, {dir_left, dir_right}) then
- if room.globpole[pom1] < 3 then
- room.globpole[pom1] = 3
- end
- room.globpole[pom1] = math.mod(room.globpole[pom1] - 2, 4) + 3
- switch(room.globpole[pom1]){
- [3] = function()
- crabs[pom1].afaze = 0
- end,
- [4] = function()
- crabs[pom1].afaze = 6
- end,
- [5] = function()
- crabs[pom1].afaze = 0
- end,
- [6] = function()
- crabs[pom1].afaze = 8
- end,
- }
- elseif pom2 <= 4 and pomb1 then
- room.globpole[pom1] = 1
- crabs[pom1].afaze = random(5) + 1
- if crabs[pom1].afaze == 1 then
- crabs[pom1].afaze = 0
- end
- elseif pom2 <= 10 and pomb1 then
- room.globpole[pom1] = 2
- if crabs[pom1].afaze == 1 or random(100) < 10 then
- crabs[pom1].afaze = random(5) + 1
- if crabs[pom1].afaze == 1 then
- crabs[pom1].afaze = 0
- end
- end
- if random(100) < 5 then
- crabs[pom1].afaze = 1
- end
- else
- switch(room.globpole[pom1]){
- [0] = function()
- crabs[pom1].afaze = 1
- end,
- [1] = function()
- room.globpole[pom1] = -random(20) - 20
- end,
- [2] = function()
- room.globpole[pom1] = -random(20) - 5
- end,
- default = function()
- if isIn(room.globpole[pom1], {3, 4, 5, 6}) then
- room.globpole[pom1] = -random(10) - 4
- crabs[pom1].afaze = 0
- else
- if random(-room.globpole[pom1]) < 4 then
- crabs[pom1].afaze = 1
- elseif random(100) < room.globpole[pom1] or crabs[pom1].afaze == 1 then
- crabs[pom1].afaze = random(5) + 1
- if crabs[pom1].afaze == 1 then
- crabs[pom1].afaze = 0
- end
- end
- room.globpole[pom1] = room.globpole[pom1] + 1
- end
- end,
- }
- end
- crabs[pom1]:updateAnim()
- end
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_vladce()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_krabi()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-